﻿using FactoryLib.abstracts;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace FactoryLib.services.NormalFactory
{
    /// <summary>
    /// 屏蔽对象的创建，将复杂的对象创建交给工厂，调用者不用知道其他资源是怎么创建的
    /// </summary>
    public class GameFactory
    {
        private IEnumerable<Ihero>? _currentHero;

        public void LoadActivity()
        {
            Console.WriteLine("----加载活动模块：日常活动-----");
        }

        public void LoadMusic()
        {
            Console.WriteLine("----加载游戏音乐模块，日常音乐----");
        }

        public void LoadTopic()
        {
            Console.WriteLine("----加载游戏主题模块，日常主题----");
        }

        public GameFactory(IEnumerable<Ihero> iheroes)
        {
            Console.WriteLine("各位召唤师陆续登场");
            this._currentHero = iheroes;
           
        }

        public void GameStart()
        {
            this.LoadActivity();
            this.LoadTopic();
            this.LoadMusic();
            Console.WriteLine("----------游戏开始-------------");
            Thread.Sleep(1000);
            Console.WriteLine("----------欢迎来到王者荣耀-------------");
            Thread.Sleep(1000);
            Console.WriteLine("----------敌军还有三十秒到达战场，请做好准备-------------");
            Thread.Sleep(1000);
            Console.WriteLine("----------全军出击-------------");
            Thread.Sleep(1000);
        }

        public void GameEnd()
        {
            Console.WriteLine("----------红方胜利-------------");
            Console.WriteLine("----------游戏结束-------------");
        }
    }
}
